package org.springframework.zp.autowired.primary;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

/**
 * 用于测试  @Autowried 多个实现类 注入分析
 * 在其中的一个默认实现类上添加了 @Primary 注解
 */
@Slf4j(topic = "e")
@Component("primaryAutowiredTest")
public class PrimaryAutowiredTest {

	@Autowired
	IAnnotationAutowiredPrimaryInterface a;

	/**
	 * 依赖名称按照 bean name 进行依赖注入
	 */
	@Autowired
	IAnnotationAutowiredPrimaryInterface bAnnotationAutowiredNoPrimaryImpl;

	@Qualifier("bAnnotationAutowiredNoPrimaryImpl")
	@Autowired
	IAnnotationAutowiredPrimaryInterface c;



	public void printf() {
		log.info("[printf],输出 @Autowired 引入的类信息 begin");
		log.info("###### a aPrimary=[{}]", a);
		log.info("###### b bAnnotationAutowiredImpl=[{}]", bAnnotationAutowiredNoPrimaryImpl);
		log.info("###### c  c=[{}]", c);


		log.info("[printf],输出 @Autowired 引入的类信息 end");
	}

}
